1. Field of the Invention
The present invention generally relates to computer systems, and more particularly to a method of providing a multi-port connection to a memory module used by a network routing device to increase the effective bandwidth of the memory module.
2. Description of the Related Art
A wide variety of systems have been devised that allow individual computers to communicate with one another, and further allow individual "client" computers to communicate with "server" computers that provide programs and data to the clients. One very common system that links computers, usually via a wire-based cabling scheme, is referred to as a local area network (LAN). LANs not only provide a communications medium between computers, but also allow users to share peripheral devices, such as printers, data storage devices, etc. Multiple LANs which are geographically remote can be further interconnected over public or private communication lines, to create a wide area network (WAN). Switch equipment is used to connect individual computer nodes to the wire cabling (backbone) of the LAN, and to a trunk line that is used to interconnect LANs in a WAN. A bridge device can also be used to connect two separate networks (at the data link layer), to make interconnected LANs look like a single LAN.
Various transmission methods can be used to send and receive information across a LAN or WAN. An early method, referred to as token ring, uses an electronic "token" (data packet) which is passed among nodes that are interconnected in a ring or loop fashion. The sequence of nodes receiving the token corresponds to the physical order in which the nodes appear on the ring. Every node on the ring sees the data packet, but only the addressed receiving node will accept it. A more recent and widely used LAN transmission method, referred to as ethernet, is based on a bus network topology, and has several implementations. Ethernet is a baseband network, that is, a network in which the information is modulated onto a single carrier frequency. The digital input is applied directly to the transmission media without the intervention of a modulating device.
The packet of data which is sent along the network transmission medium is referred to as a frame. A frame includes address, data, frame check sequence, and control information that is switched and transmitted together. Frames must be stored in a packet buffer memory at a switch while awaiting transmission, i.e., frames from the various nodes are interleaved throughout the network. Frames can be sent in any order as the control information embedded in the frames allows the receiving end to organize them in the correct order.
The size and composition of a frame varies according to the protocol used. A network protocol is a set of rules governing the information flow within the communications infrastructure, and is also referred to as "data link control". Protocols control format, timing, error correction and running order. Multiple protocols are often used in networks, with each protocol responsible for one part of the communications function, and include internetwork packet exchange (IPX), systems network architecture (SNA), binary synchronous communications (BISYNC), or asynchronous communications (ASYNC) protocols. One technique for combining diverse data protocols is time division multiplexing (TDM). TDM provides a method of merging data from several sources into a single channel for communication over telephone lines, a microwave system or a satellite system. This single channel is divided into time slots and each transmitting device is assigned at least one of the time slots for its transmission.
Since protocols are interrelated to both the technology of the underlying data links, and the communications (hardware) requirements of the transmitting and receiving ends, protocols tend to evolve over time as technology changes. A good example of this evolution is the recent emergence of the asynchronous transfer mode (ATM) protocol which is used to provide faster digital communications. ATM is a cell-based data transfer technique in which channel demand determines packet allocation; units of data are not time related to each other. Because ATM tends to maximize the efficiency of the data communications network, it is preferable over most other prior art protocols. There is, however, a large embedded base of non-ATM networks, so various "overlay" schemes have been devised to allow ATM networks to support non-ATM protocols.
Various devices can be used to deliver packets between ATM and non-ATM networks. One such device, known as a LAN forwarding engine, is used by a LAN switch platform. The LAN forwarding engine card provides hardware forwarding between LAN switch ports and the ATM network. LAN frames which are bridged between the LAN and the ATM network are transferred using LAN emulation support. The LAN forwarding engine card also contains a processor for handling LAN frames that must be routed to the ATM network.
As shown in FIG. 1, an exemplary LAN forwarding engine is generally comprised of a universal feature interface controller (UFIC) module 10, a multiple integrated memory interface controller (MIMIC) module 12, packet memory 14, a processor subsystem 16, and an ATM adapter card 18. UFIC 10 transfers LAN frames between the LAN switch ports and packet memory 14, and provides media access control (MAC) address lookup, and performs frame forwarding and filtering using a lookup table 20. UFIC 10 is connected to the LAN switch ports via a central processing unit (CPU) bus and a frame data bus. MIMIC 12, which is a memory controller for packet memory 14, also provides hardware forwarding of LAN frames between packet memory 14 and ATM controller 18. Processor subsystem 16 handles routed LAN frames and other LAN frames which cannot be forwarded by hardware. MIMIC 12 provides multiple interfaces into packet memory 14, which is typically a static, random-access memory (RAM) array. The provision of multiple interfaces allows components such as processor 22 and ATM controller 18 to access packet memory 14 simultaneously with UFIC 10 by using a PCI (peripheral component interconnect) bus 24.
In a network router or bridge, the frame header must be evaluated and may be modified before retransmission to the network. Conventional methods of processing frames in this environment require data movement of the frames between the devices (on the LAN forwarding engine card) that process and evaluate this frame. Moving frame data across the buses is time consuming and performance limiting. The embedded processor 22 must often perform the data movement of frames, which impacts the ability of processor 22 to evaluate and process the frames. It would, therefore, be desirable to provide an efficient, high performance design for bridging and routing of frames which decreases frame movements between the devices on the LAN forwarding engine card. It would be further advantageous if the design allowed for improved utilization of the PCI bus and did not require an embedded processor to move frame data from one device to another.